
package com.insigma.business.qrcode.soldier.dao;

import com.insigma.business.qrcode.common.annotation.Crypt;
import com.insigma.business.qrcode.soldier.dto.SoldierRegistrationHistoryBSearcher;
import com.insigma.business.qrcode.soldier.entity.SoldierRegistrationHistoryDO;
import org.apache.ibatis.annotations.Param;

import java.util.List;


@Crypt(decryptFields = {"idCardNo", "", ""})
public interface SoldierRegistrationHistoryDao {

    
    List<SoldierRegistrationHistoryDO> search(final SoldierRegistrationHistoryBSearcher innerSearcher);

    
    SoldierRegistrationHistoryDO get(final String id);

    
    Integer insert(final SoldierRegistrationHistoryDO soldierRegistrationHistoryDO);

    
    Integer update(final SoldierRegistrationHistoryDO soldierRegistrationHistoryDO);

    
    Integer delete(@Param("id") final String id,
                   @Param("modifierType") final String modifierType,
                   @Param("modifierId") final String modifierId);

    @Crypt(encryptParamIndex = {0})
    List<SoldierRegistrationHistoryDO> listByStatus(@Param("idCardNo")String idCardNo, @Param("status")String status);

    SoldierRegistrationHistoryDO getByRegistrationIdAndStatus(@Param("registrationId")String registrationId, @Param("status")String status);

    List<SoldierRegistrationHistoryDO> listByRegistrationId(String registrationId);
}
